<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="vue.js"></script>
</head>

<body>
    <div id='root'> 
      姓: <input type="text" v-model="firsName"/>
      名: <input type="text" v-model="lastName"/>
      <div>{{fullName}}</div>
      <div>{{count}}</div>
    </div> 

    <script>
        new Vue({
            el: '#root',  //el 挂载点，与id=root的元素绑定  
            data: {  //绑定元素的数据操作    
                title: 'this is hello world',
                firsName: '',
                lastName: '',
                count: 0
            },
            computed: {
                fullName: function(){ //fullName 是通过 firsName与lastName计算出啦
                   return this.firsName + this.lastName
                }
            },
            watch: {
                // firsName: function(){  //监听firsName
                //     this.count ++;
                // },
                // lastName: function () { //监听lastName
                //     this.count ++;
                // }
                fullName: function(){
                    this.count++;
                }
            },
        })

        /**
         *  计数属性
         *  computed  
         *  如果计算结果没有改变，不会重新计算，会使用之前的缓存值，
         *  只有依赖的计算属性发生变化才会重新计算，所以它的性能比较高
         *   
         *  侦听器
         *  watch
         *  监听数据的变化，如果监听到的数据发生改变，做对应的业务逻辑
         *  
         * 
         * */

    </script>
</body>

</html>